@不喜丶不悲
2年前 提问
1个回答

常用的数据转换方法有哪四种

007bug
2年前

常用的数据转换方法有以下四种:

  • 静态数据动态生成:利用函数或子程序对静态数据进行动态生成的方式混淆,能增加程序复杂度。将需要混淆的静态数据利用函数或者子程序替代并分散嵌入各控制块后,算法的强度与弹性能大大提升。在应用中适当地选择混淆数据能有效增强算法的性能,可以防止对程序中所有静态数据混淆而增加开销,也不会造成仅对关键数据混淆而给攻击者提供有效提示。

  • 数组结构转换:对数组的混淆方式包括将数组拆分为几个子数组、合并几个数组为一个、增加或减少数组的维度等。合并数组增加了程序的复杂度,拆分数组在合并数组的基础上还增加了复杂度,而改变数组维度在这两者之上还增加了复杂度。单独使用一种转换方式抵抗攻击的性能较弱,将上述方式有效组合能大大加强抵抗攻击的强度。

  • 类继承转换:通过对类设计结构以及类继承关系进行混淆,可以隐藏类的设计结构以及类之间的继承关系反映出来的程序设计思路,能有效达到抵抗攻击的目的。类继承转换方法主要有合并类、分割类以及类型隐藏等。类继承转换提高了程序的复杂度,给程序带来的额外开销也很小。

  • 数据存储空间转换:对数据空间位置的随机化增加了攻击者获取有效信息的难度,可以避免设计者对数据以符合逻辑的方式存储给攻击者提供攻击的线索与资源。这类转换算法增加的复杂度较少,但抵抗攻击的能力很强,具有单向性,同时算法开销很小,通常与其他的混淆算法组合使用。